package com.itheima.edu.info.manager.controller;

import com.itheima.edu.info.manager.domain.Teacher;
import com.itheima.edu.info.manager.service.TeacherService;

import java.util.Scanner;

public class TeacherController {
    private TeacherService teaser = new TeacherService();
    private Scanner sc = new Scanner(System.in);

    //客服类中展示教师管理系统功能菜单的方法
    public void start() {

        while (true) {
            System.out.println("------欢迎来到教师管理系统------");
            System.out.println("1.添加教师");
            System.out.println("2.删除教师");
            System.out.println("3.修改教师");
            System.out.println("4.查看教师");
            System.out.println("5.退出");
            System.out.println("请输入您的选择:");


            String option = sc.next();

            switch (option) {
                case "1":
                    addTeacher();
                    break;
                case "2":
                    deleteTeacher();
                    break;
                case "3":
                    updateTeacher();
                    break;
                case "4":
                    findAllTeacher();
                    break;
                case "5":
                    System.out.println("感谢使用教师管理系统,再见!");
                    return;
                default:
                    System.out.println("您的输入有误,请重新输入!");
                    break;
            }

        }


    }

    //客服中添加功能
    public void addTeacher() {
        //1.让用户键盘录入要添加的教师信息
        System.out.println("请输入教师工号");
        String id = inputIdInFo(false);

        Teacher tea = inputTeacherInFo(id);
        boolean result = teaser.addTeacehr(tea);

        if (result) {
            System.out.println("添加成功!");
        } else {
            System.out.println("添加失败!");
        }
    }

    //客服中删除功能
    public void deleteTeacher() {
        //指挥业务员,拿到系统数据容器
        Teacher[] teas = teaser.findAllTeacher();
        //判断系统数据是否为空
        if (teas == null) {
            System.out.println("系统暂时没有数据,请添加后重试!");
            return;
        }

        //键盘录入要删除的教师工号
        System.out.println("请输入要删除的教师工号");
        String id = sc.next();

        //指挥业务员进行删除业务
        boolean result = teaser.deleteTeacher(id);

        if(result){
            System.out.println("删除成功!");
        }else{
            System.out.println("工号不存在,请确认后重试!");
        }

    }

    //客服中修改功能
    public void updateTeacher() {
        //指挥业务员,拿到系统数据容器
        Teacher[] teas = teaser.findAllTeacher();
        //判断系统数据是否为空
        if (teas == null) {
            System.out.println("系统暂时没有数据,请添加后重试!");
            return;
        }
        System.out.println("请输入要修改的教师工号");
        String updateId = inputIdInFo(true);
        Teacher tea = inputTeacherInFo(updateId);

        teaser.updateTeacher(updateId,tea);
        System.out.println("修改成功!");

    }

    //客服类中查看功能
    public void findAllTeacher() {
        //指挥业务员,拿到系统数据容器
        Teacher[] teas = teaser.findAllTeacher();

        //判断系统数据是否为空
        if (teas == null) {
            System.out.println("系统暂时没有数据,请添加后重试!");
            return;
        }

        //输出系统数据表头
        System.out.println("工号\t\t姓名\t年龄\t出生日期");
        for (int i = 0; i < teas.length; i++) {
            if (teas[i] != null) {
                System.out.println(teas[i].getId() + "\t" + teas[i].getName() + "\t" + teas[i].getAge() + "\t\t" + teas[i].getBirthday());
            }
        }


    }

    //得到一个可用工号的方法
    public String inputIdInFo(boolean flag){
        String id;
        while(true){
            id = sc.next();
            if(teaser.isExists(id) == flag){
                break;
            }else{
                System.out.println("当前工号不可用,请重新输入!");
            }
        }
        return id;
    }

    //键盘录入教师信息并封装成教师对象的方法
    public Teacher inputTeacherInFo(String id) {
        System.out.println("请输入教师姓名");
        String name = sc.next();
        System.out.println("请输入教师年龄");
        String age = sc.next();
        System.out.println("请输入教师出生日期");
        String birthday = sc.next();

        //2.将录入的教师信息封装成教师对象
        Teacher tea = new Teacher();
        tea.setId(id);
        tea.setName(name);
        tea.setAge(age);
        tea.setBirthday(birthday);

        return tea;
    }

}
